package com.xgame.service;

import org.springframework.beans.factory.annotation.Autowired;

import com.xgame.data.OnlineUser;
import com.xgame.mybatis.mapper.ItemDrugMapper;
import com.xgame.mybatis.model.ItemDrug;

public class ItemServiceImpl implements ItemService {

	@Autowired
	ItemDrugMapper itemDrugMapper;
	
	void sellItem(int itemId,int num) {
		ItemDrug itemDrug=itemDrugMapper.selectByPrimaryKey(11);
		itemDrugMapper.updateByPrimaryKeySelective(itemDrug);
	}

	void buyItemDrug(OnlineUser onlineUser, int itemId, int num) {
		System.out.println(new Throwable().getStackTrace()[0].getMethodName());
//		 onlineUser.lock(this.getClass().getMethods()[0].getName());
		// int oldCoin=1000;
		// 扣钱
		// 物品给到用户
	}

	public static void testGetClassName() {
		// 方法1：通过SecurityManager的保护方法getClassContext()
		String clazzName = new SecurityManager() {
			public String getClassName() {
				return getClassContext()[1].getName();
			}
		}.getClassName();
		System.out.println(clazzName);
		// 方法2：通过Throwable的方法getStackTrace()
		String clazzName2 = new Throwable().getStackTrace()[1].getClassName();
		System.out.println(clazzName2);
		// 方法3：通过分析匿名类名称()
		String clazzName3 = new Object() {
			public String getClassName() {
				String clazzName = this.getClass().getName();
				return clazzName.substring(0, clazzName.lastIndexOf('$'));
			}
		}.getClassName();
		System.out.println(clazzName3);
		// 方法4：通过Thread的方法getStackTrace()
		String clazzName4 = Thread.currentThread().getStackTrace()[2]
				.getClassName();
		System.out.println(clazzName4);
	}
}
